﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace HelperPrototype.OtherForms
{
    public partial class XemQuyTrinh : Form
    {
        private int _ID;

        public XemQuyTrinh(int quyTrinhID)
        {
            InitializeComponent();
            _ID = quyTrinhID;
        }



        private void XemQuyTrinh_Load(object sender, EventArgs e)
        {
            loadData();
        }

        private void loadData()
        {
            try
            {
                _DB.DataClasses1DataContext dc = new _DB.DataClasses1DataContext();
                _DB.QuyTrinhMuaHang qt = dc.QuyTrinhMuaHangs.Single(x => x.ID == _ID);

                // load info
                labelTrangThai.Text = "Trạng thái: " + qt.TrangThaiQuyTrinhMuaHang.MoTa;
                txtPhieuDN.Text = qt.MaPhieuDeNghiMuaHang;
                txtPhieuMH.Text = qt.MaPhieuMuaHang;
                txtPhieuTU.Text = qt.MaPhieuTamUng;
                txtPhieuTT.Text = qt.MaPhieuThanhToan;

                foreach (_DB.DonDatHang d in qt.DonDatHangs)
                {
                    cbbDonDH.Items.Add(d.MaDonDatHang);
                    if (d.PhieuNhapKhos.Count == 1)
                        cbbPhieuNK.Items.Add(d.PhieuNhapKhos.Single().MaPhieu);
                }
                if (cbbDonDH.Items.Count > 0)
                    cbbDonDH.SelectedIndex = 0;
                if (cbbPhieuNK.Items.Count > 0)
                    cbbPhieuNK.SelectedIndex = 0;

                // load hang hoa
                var listHangHoa = qt.PhieuDeNghiMuaHang.PhieuDeNghiMuaHang_HangHoas;
                int count = 1;
                foreach (_DB.PhieuDeNghiMuaHang_HangHoa h in listHangHoa)
                {
                    DataGridViewRow r = new DataGridViewRow();
                    r.CreateCells(dgvHangHoa);
                    r.Cells[0].Value = count++;
                    r.Cells[1].Value = h.HangHoa.TenHangHoa;
                    r.Cells[2].Value = h.SoLuongDeNghi;
                    r.Cells[3].Value = h.SoLuongMua;
                    r.Cells[4].Value = h.SoLuongNhapKho;

                    dgvHangHoa.Rows.Add(r);
                }

                // load su kien
                // phieu de nghi
                addEvent(qt.PhieuDeNghiMuaHang.NgayTao, "Tạo phiếu đề nghị mua hàng",
                         qt.MaPhieuDeNghiMuaHang, qt.PhieuDeNghiMuaHang.NguoiTao.Ten);
                if (qt.TrangThai == _DB.TrangThaiQuyTrinhMuaHang.KHONG_DUYET_PHIEU_DE_NGHI)
                {
                    addEvent(qt.PhieuDeNghiMuaHang.NgayDuyet.Value, "Không duyệt phiếu đề nghị mua hàng",
                             qt.MaPhieuDeNghiMuaHang, qt.PhieuDeNghiMuaHang.NguoiDuyet.Ten);
                    return;
                }
                addEvent(qt.PhieuDeNghiMuaHang.NgayDuyet.Value, "Duyệt phiếu đề nghị mua hàng",
                         qt.MaPhieuDeNghiMuaHang, qt.PhieuDeNghiMuaHang.NguoiDuyet.Ten);


                // phieu mua hang
                addEvent(qt.PhieuMuaHang.NgayTao, "Tạo phiếu mua hàng",
                         qt.MaPhieuMuaHang, qt.PhieuMuaHang.NguoiTao.Ten);
                string listDonDH = qt.DonDatHangs.Count + " đơn đặt hàng: ";
                foreach (_DB.DonDatHang d in qt.DonDatHangs)
                {
                    listDonDH += ", " + d.MaDonDatHang;
                }
                addEvent(qt.PhieuMuaHang.NgayDuyet.Value, "Duyệt phiếu mua hàng. " + listDonDH,
                         qt.MaPhieuMuaHang, qt.PhieuMuaHang.NguoiDuyet.Ten);



                // phieu tam ung
                try
                {
                    addEvent(qt.PhieuTamUng.NgayTao, "Tạo phiếu tạm ứng",
                             qt.MaPhieuTamUng, qt.PhieuTamUng.NguoiTao.Ten);
                    if (qt.TrangThai == _DB.TrangThaiQuyTrinhMuaHang.KHONG_DUYET_PHIEU_TAM_UNG)
                    {
                        addEvent(qt.PhieuTamUng.NgayDuyet.Value, "Không duyệt phiếu tạm ứng",
                                 qt.MaPhieuTamUng, qt.PhieuTamUng.NguoiDuyet.Ten);
                        return;
                    }
                    addEvent(qt.PhieuTamUng.NgayDuyet.Value, "Duyệt phiếu tạm ứng",
                             qt.MaPhieuTamUng, qt.PhieuTamUng.NguoiDuyet.Ten);
                }
                catch (System.Exception ex)
                {
                	
                }

                // phieu nhap kho
                foreach (_DB.DonDatHang d in qt.DonDatHangs)
                if (d.PhieuNhapKhos.Count == 1)
                {
                    _DB.PhieuNhapKho p = d.PhieuNhapKhos.Single();
                    addEvent(p.NgayTao, "Tạo phiếu nhập kho cho đơn đặt hàng " + d.MaDonDatHang,
                             p.MaPhieu, p.NguoiTao.Ten);
                }

                // phieu thanh toan
                addEvent(qt.PhieuThanhToan.NgayTao, "Tạo phiếu thanh toán",
                         qt.MaPhieuThanhToan, qt.PhieuThanhToan.NguoiTao.Ten);
                if (qt.TrangThai == _DB.TrangThaiQuyTrinhMuaHang.KHONG_DUYET_PHIEU_THANH_TOAN)
                {
                    addEvent(qt.PhieuThanhToan.NgayDuyet.Value, "Không duyệt phiếu thanh toán",
                             qt.MaPhieuThanhToan, qt.PhieuThanhToan.NguoiDuyet.Ten);
                    return;
                }
                addEvent(qt.PhieuThanhToan.NgayDuyet.Value, "Duyệt phiếu thanh toán",
                         qt.MaPhieuThanhToan, qt.PhieuThanhToan.NguoiDuyet.Ten);
            }
            catch (System.Exception ex)
            {
                //MessageBox.Show(ex.Message, "Error");
            }


        }

        private void addEvent(DateTime t, string sukien, string maPhieu, string tenNguoiDung)
        {
            DataGridViewRow r = new DataGridViewRow();
            r.CreateCells(dgvSuKien);
            r.Cells[0].Value = t;
            r.Cells[1].Value = tenNguoiDung;
            r.Cells[2].Value = sukien;
            r.Cells[3].Value = maPhieu;

            dgvSuKien.Rows.Add(r);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnPhieuDN_Click(object sender, EventArgs e)
        {
            if (txtPhieuDN.Text.Length > 0)
            {
                Form f = new XemPhieuDeNghiMuaHangForm(txtPhieuDN.Text);
                f.Show();
            }
        }

        private void btnPhieuMH_Click(object sender, EventArgs e)
        {
            if (txtPhieuMH.Text.Length > 0)
            {
                Form f = new XemPhieuMuaHang(txtPhieuMH.Text);
                f.Show();
            }
        }

        private void btnDonDH_Click(object sender, EventArgs e)
        {
            if (cbbDonDH.Text.Length > 0)
            {
                Form f = new XemDonDatHang(cbbDonDH.Text);
                f.Show();
            }
        }

        private void btnPhieuNK_Click(object sender, EventArgs e)
        {
            if (cbbPhieuNK.Text.Length > 0)
            {
                Form f = new XemPhieuNhapKho(cbbPhieuNK.Text);
                f.Show();
            }
        }

        private void btnPhieuTU_Click(object sender, EventArgs e)
        {
            if (txtPhieuTU.Text.Length > 0)
            {
                Form f = new XemPhieuTamUng(txtPhieuTU.Text);
                f.Show();
            }
        }

        private void btnPhieuTT_Click(object sender, EventArgs e)
        {
            if (txtPhieuTT.Text.Length > 0)
            {
                Form f = new XemPhieuThanhToan(txtPhieuTT.Text);
                f.Show();
            }
        }

    }
}
